<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <h3>学习计算属性</h3>
        <p>{{msg}}</p>
        <div>下面把msg翻转</div>
        <p>插值表达式：{{msg.split('').reverse().join('')}}</p>
        <p>计算属性：{{ reversedMsg }}</p>
        
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

    <script>
        // 如果我们希望显示一个结果：把msg的翻转一下
        // msg.split('').reverse().join('')
        //  - split: 是字符串分隔成数组
        //  - reverse : 对数组进行翻转
        //  - join :把数组拼成字符串

        const vm = new Vue({
            el: '#app',
            data: {
                msg: 'javascript'
            },
            methods: {
                f1 () {
                    console.log( this.reversedMsg)
                }
            },
            computed: {
                // 定义计算属性
                // 执行逻辑：
                // 1. 当你用到了计算属性时，整个函数会执行一次
                // 2. 如果计算属性中所依赖的数据项变化时，它也会自动调用一次
                
                reversedMsg () {
                    console.log( 'reversedMsg' )
                    //把msg的翻转一下
                    let newMsg = this.msg.split('').reverse().join('')
                    return newMsg
                }
            }
        })
    </script>
</body>
</html>